dhcp-banner

DHCP คืออะไร

Dynamic Host Configuration Protocol หรือ DHCP คืออะไร ? มันคือมาตราฐานของ network protocol ที่ใช้บน Internet Protocol (IP) network โดนควบคุมผ่าน DHCP server เพื่อแจกจ่ายค่า configuration ของ network ให้กับ host ที่อยู่ภายใต้วง network เดียวกัน เช่น IP, Subnet, Gateway ส่วนใหญ่ router จะมีคุณสมบัติของการเป็น DHCP server อยู่แล้วด้วย ทำให้ computer หรือ PC ภายในบ้าน สามารถเชื่อมต่อไปยัง router ได้โดยใช้ DHCP ในการแจกจ่ายค่า IP address โดยมี่เราไม่ต้อง configure ค่าลงไปที่ host เองทั้งหมด ช่วยลดภาระการทำงานของผู้ดูแลระบย network ด้วยในการไล่ configure ค่า network ทุก host ในระบบ

 

การทำงานของ DHCP

หลังจากทราบว่า DHCP คืออะไร มาดูต่อว่าและมันทำงานอย่างไร โดยอุปกรณ์ใน network จะทำการส่งข้อมูลภายใน หรือ ระหว่าง network ผ่าน TCP/IP ซึ่ง DHCP server เองสามารถจัดการค่า TCP/IP ของแต่ละอุปกรณ์ใน network ให้อัตโนมัติ หรือ บางอุปกรณ์สามารถกำหนดค่าเองโดยไม่อิงตาม DHCP ก็ได้ เช่นในบ้านเรือนปกติจะได้รับ public IP จากผู้ให้บริการ internet หรือ ISP เพียแค่ 1 IP ซึ่งถ้าเรามีอุปกรณ์ที่ต้องการเชื่อมต่อ internet หลายตัว เราสามารถใช้คุณสมบัติ DHCP ใน router เพื่อแจกจ่าย local IP หรือ private IP (192.168.1.0/24) แจกจ่ายให้กับอุปกรณ์ภายในบ้านเราแทน ซึ่งทั้งหมดก็จะ NAT กลับออกสู่ internet ด้วย public IP เดียวกันได้

DHCP ทำงานในลักษณะ Client-Server เมื่ออุปกรณ์ภายใน network ได้เชื่อมต่อเข้ามา ฝั่ง DHCP client หรืออุปกรณ์เองจะทำการส่ง broadcast เพื่อค้นหาข้อมูล DHCP server และเมื่อ DHCP server ได้รับข้อมูลคำขอแล้ว จะทำการจัดการกับ IP pool ที่ตัวเองเก็บไว้ ซึ่งจะมีข้อมูลของ default gateway, domain name, name servers และ time servers โดย DHCP server จะส่งข้อมูล configuration network ที่ยังไม่มีผู้ใช้งาน ให้กับ client ซึ่งค่านี้ฝั่ง DHCP จะทำการจดจำไว้ในช่วงระยะเวลาหนึง ซึ่งถ้า client มีการ reboot และเชื่อมต่อมาใหม่ ทาง DHCP server จะได้ส่งค่าเดิมกลับไปให้ แต่ถ้าเกินช่วงเวลาที่ว่า DHCP server ก็อาจจะส่งค่าใหม่กลับไปให้แทน

ขั้นตอนการการเลือก IP address ของ DHCP server

1. Dynamic allocation

ผู้ดูแลระบบสามารถกำหนด range ของ IP address สำหรับ DHCP ได้ว่า DHCP client ในระบบจะได้รับการแจกจ่าย IP address อะไรบ้าง และสามารถตั้งช่วงเวลาที่จะให้ DHCP server ดึง IP address หลังจากไม่มีการใช้งานกลับเข้า pool เพื่อแจกจ่ายให้อุปกรณ์อื่นได้

2. Automatic allocation

DHCP server แจกจ่าย IP address แบบถาวรให้กับ client ที่ร้องขอเข้ามาตาม range ที่ผู้ดูแลกำหนดเช่นเดียวกับ dynamic allocation แต่คราวนี้ DHCP server จะทำการเก็บข้อมูลในตารางว่า IP address ที่ได้แจกจ่ายออกไปให้กับอุปกรณ์ใดบ้าง เพื่อคราวหน้าที่มีการเชื่อมต่อ DHCP server จะทำการแจกจ่าย IP address เดิมที่เคยแจกให้กับอุปกรณ์นั้น ถ้า IP address นั้นยังว่างอยู่

3. Manual allocation (Static allocation)

DHCP server สามารถกำหนด private IP ให้กับอุปกรณ์โดยดูจาก MAC address ของ client ที่ร้องขอได้ ด้วยการ configure mapping โดยผู้ดูแลระบบ เราเรียกคุณสมบัตินี้ว่า static DHCP assigmenet หรือ fixed-address (dhcpd) ซึ่งถ้าระบบไม่พบ Mac address ที่จะ mapping ได้ ตัว DHCP server จะสามารถกลับไปแจกด้วย Dynamic หรือ Automatic allocation แทนให้ (แต่ router บางรุ่นก็ไม่สามารถทำได้)

ปัจจุบัน DHCP รองรับการทำงานบน IPv4 และ IPv6 ซึ่งไม่ว่าจะ version อะไร DHCP ก็ใช้ในวัตถุประสงค์เดียวกัน เพียงแต่ IPv6 อาจจะมีคุณสมบัติในการตั้งค่าได้สูงกว่าเช่น stateless address autoconfiguration หรือ ink-local addressing

 

ขั้นตอนของ DHCP

DHCP เชื่อมต่อกันแบบ connectionless โดยอาศัย User Datagram Protocol (UDP) ซึ่งจะใช้ด้วยกัน 2 port คือ

  • Port 67  สำหรับฝั่ง server
  • Port 68  สำหรับฝั่ง client

DHCP operation มีขั้นตอนที่เรียกว่า DORA หรือ discovery, offer, request, acknowledegment

1. DHCP discovery

เริ่มด้วย Client ทำการ broadcast message ไปบน network subnet ที่ IP address 255.255.255.255 หรือ subnet broadcast อื่นๆ บางครั้ง request ไปที่ IP address สุดท้ายที่รู้จัก ซึ่งถ้า client connect เข้าไปยัง network เดิม ฝั่ง server ก็จะยอมรับ request นั้น แต่ก็ขึ้นอยู่กับการจัดการของฝั่ง server เอง ซึ่งถ้าเกินเวลา timeout expired ไปแล้ว ก็จะต้องส่งคำขอ IP address ใหม่

2. DHCP offer

เมื่อ DHCP server ได้รับ DHCP discovery จากฝั่ง client ทาง DHCP server จะทำการจอง IP address ให้สำหรับ client และทำการส่ง DHCP offer ไปให้ client ซึ่งภายในจะมีข้อมูล MAC address ของ client, IP address ที่แจกให้, Subnet Mask, ระยะเวลาที่อนุญาตใช้งาน และ IP address ของ DHCP server ให้การติดต่อ

3. DHCP request

ใช้ตอบกลับ DHCP offer จากฝั่ง client โดยสามารถรับ DHCP offer จากหลากหลาย server ได้ แต่จะมีแค่ DHCP offer เดียวที่ client ยอมรับ จากนั้นด้วย DHCP request จะบอกว่า server ตัวไหนที่ client เลือก และเมื่อ DHCP server ได้รับ message นี้ ส่วน server อื่นที่ไม่ได้ถูกเลือก ก็จะยกเลิกการจอง IP address และคืนกลับสู่ pool

4. DHCP acknowledgement

หลังจาก DHCP server ได้รับ DHCP request จากฝั่ง client แล้ว การ configuretion ก็เข้ามาสู้ phase สุดท้าย ซึ่งก็คือการส่ง DHCP ack packet กลับไป โดย packet จะมีข้อมูล ระยะเวลาที่ให้ใช้งาน รวมถึง ข้อมูลในสำหรับ configuration อื่นๆที่ทาง client อาจจำเป็นต้องใช้ ซึ่งส่วนนี้ IP address ได้ถูก setup เรียบร้อยแล้ว

 

dhcp-flow

 

 

Author: Suphakit Annoppornchai

Credit: https://saixiii.com, https://en.wikipedia.org

Leave a Reply